在深度学习领域,有许多深度学习框架可以让开发者和研究者用于设计模型,每个框架具备各自独特的网络结构定义和模型保存格式。AI 工程师和研究者希望自己的模型能够在不同的框架之间转换,但框架之间的差距阻碍了模型之间的交互操作。
今年年初,微软开源了 MMdnn,这是一套用于转换、可视化深度神经网络模型的综合性解决方案。MMdnn 中的「MM」代表模型管理,「dnn」的意思是深度神经网络,它能够通过中间表征格式让训练模型在 Caffe、Keras、MXNet、Tensorflow、CNTK、PyTorch 和 CoreML 等深度学习框架之间转换,帮助开发者实现模型在不同框架之间的交互。
根据微软的官方描述,MMdnn 主要有以下特征:
模型文件转换器,不同的框架间转换 DNN 模型
模型代码片段生成器,生成适合不同框架的代码
模型可视化,DNN 网络结构和框架参数可视化
模型兼容性测试(正在进行中)
除了 MMdnn,微软还推出了多个深度学习框架的「旅行伴侣」,比如深度学习框架的通用语言 repo 1.0 以及和多个公司联合提出的深度学习联合标准 ONNX。在这些深度学习「旅行伴侣」的帮助下,AI 开发者在不同框架之间轻松运用专业知识,实现不同开源社区之间的合作。
不过,对于使用不同平台和不同编程语言的开发者来讲,微软的深度学习框架「旅行伴侣」如何满足他们的需求?这些AI 开发工具未来会新增哪些功能?微软还会推出哪些工具帮助 AI 开发者构建应用?AI 研习社采访了微软亚洲研究院系统组研究员陈程,请他为 AI 开发者解答上述疑问。
陈程简介:微软亚洲研究院系统研究组副研究员,研究领域包括存储、分布式系统、分布式计算和机器学习系统。曾经参与必应(Bing)搜索引擎 Per Document Index Service 存储系统、分布式系统开发框架 rDSN、分布式计算平台 TuX² 的研发工作,以及深度学习框架的优化和开发。
以下是采访内容:
1.微软推出可以在多个深度学习框架的开源库 MMdnn 的初衷是什么?
这个项目起源于我们内部开发人员和研究人员的交流。深度学习框架的多样性让许多开发人员面临一个实际问题,就是如何在不同深度学习框架间转换训练代码和模型文件。因此,我们参考 FFMpeg (一个广泛使用的视频、音频解码和转换的自由软件) 的设计思路,做了这样一个针对深度学习框架界的项目,来增强不同深度学习框架的互操作性。这是一套实验性的开源代码,希望更多人可以一起来完善这个工作,并基于此开发更多新的功能。
2.MMdnn 可在多个深度学习框架间转换,那么 MMdnn 是如何应对不同平台开发者的需求?
MMdnn 最开始的设计就考虑了跨平台的需求, MMdnn 不仅可以在 Windows 开发环境下使用,也可以在 Linux 开发环境下使用。MMdnn 使用 Python 作为主要的开发语言,可视化的部分采用 JavaScript,这两种语言都可以跨平台使用。
3.目前市面上有很多模型结构可视化工具,MMdnn 模型可视化工具有哪些特别之处?
MMdnn 提供的是一个统一的模型可视化工具,用一致的方式可视化其所支持的模型格式:Caffe、Keras、TensorFlow、MXNet、CNTK(CoreML 和 PyTorch 正在开发中)。用户可以通过该功能了解网络结构以及用于检查网络结构转换结果是否正确。MMdnn 同时提供一个网页版的服务 (vis.mmdnn.com),更加方便用户使用。
4.你认为 MMdnn 还有哪些地方需要改进?未来的版本迭代方向是怎样的?
MMdnn 正在快速开发中,目前主要的规划有:
完善文档和开发指南,方便用户使用,以及帮助有兴趣的开发者来一起共同工作;
支持更多的模型种类,比如语义分割、物体检测、行为识别,以及自然语言处理方面的模型;
进一步提高 MMdnn 的易用性,例如将其主要功能做成一种服务,用户可以在线转换模型而不需要再下载使用;
推进模型可视化工具和可视化模型编辑工具的开发;
利用 MMdnn 进行模型结构分析和探索相关的研究工作。
5.同样是帮助开发者和数据科学家更加方便地使用不同的深度学习框架,MMdnn、ONNX、repo 1.0 的差异和特点在哪里?
MMdnn 专注于提供一个简单易用的工具,以最小的开销帮助开发者和数据科学家在不同深度学习框架之间相互操作。
ONNX 是微软联合多个相关公司一起推动的深度学习模型标准。该标准可以更好的为软件和硬件厂商间提供更好的可交互性。多家公司的支持也利于推动不同框架内部的互操作支持。MMdnn 也将支持 ONNX 格式。
ONNX Github 链接:
https://github.com/onnx/onnx
Repo 1.0 目前主要的工作是构建一个跨平台、跨架构、跨硬件的基准测试环境,让开发者和研究人员根据自己的需求,选择最恰当的平台、硬件和深度学习框架。
Repo 1.0 完整版 GitHub 链接:
https://github.com/ilkarman/DeepLearningFrameworks
6.除了开源大量的 AI 工具,微软还通过哪些方式帮助开发者构建 AI 应用?
我们为了帮助开发者更快捷地开发、部署、优化 AI 应用,正在研究并也已经陆续推出了一系列的深度学习平台和工具,比如:
针对开发阶段,微软提供 Visual Studio Tools forAI(https://www.visualstudio.com/zh-hans/downloads/ai-tools-vs/)和Visual Studio Code Tools for AI (https://www.visualstudio.com/zh-hans/downloads/ai-tools-vscode/),让开发者更容易地在本地和远程甚至在Azure上开发和调试深度学习程序。同时更加方便的开发 Windows UWP 和 Android 及 iOS 下深度学习相关的应用;
在微软的 Azure 云计算平台上,微软通过 Azure Machine Learning 和 Azure Batch AI 服务为广大开发者提供深度学习训练的 GPU 计算平台和任务管理服务。
微软也通过 Cognitive Services(微软认知服务)和 Bot Framework 为开发者提供高阶的人工智能 API 和开发框架。
除了上述的 MMdnn、Repo 1.0 和 ONNX 这三种深度学习框架「旅行伴侣」,微软在 5 月 7 号的 Build 开发者大会上也发布了不少与 AI 相关的产品,同时也宣布更新了一系列新的 AI 开发工具。在微软一系列AI工具的加持下,不论是高阶的 AI 开发者还是刚入门的 AI 新手,都能更加便捷地把 AI 融入到他们自己的商业模式和应用产品中。
有关 MMdnn 的详细信息请访问 Github 官方页面以及陈程 Github 个人站。
MMdnn GitHub :
https://github.com/Microsoft/MMdnn
陈程个人 Github:
https://github.com/kitstar
从Python入门-如何成为AI工程师
BAT资深算法工程师独家研发课程
最贴近生活与工作的好玩实操项目
班级管理助学搭配专业的助教答疑
学以致用拿offer,学完即推荐就业
新人福利
关注 AI 研习社(okweiwu),回复 1 领取
【超过 1000G 神经网络 / AI / 大数据资料】
媲美人类有何不可?深度解读微软新 AI 翻译系统四大秘技
▼▼▼